{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Jupyter Interactive Widget Ecosystem \n",
    "\n",
    "## SciPy 2018\n",
    "## Matt Craig, Jason Grout, Sylvain Corlay and Maarten Breddels\n",
    "\n",
    "This tutorial will introduce you to the widgets in the Jupyter notebook, walk through a few approaches to writing widgets, and introduce some relatively new widget packages.\n",
    "\n",
    "We are using ipywidgets 7.2."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "00. [Introduction](00.00-introduction.ipynb)\n",
    "01. [Overview](01.00-overview.ipynb)\n",
    "02. [Widgets without writing widgets: interact](02.00-Using Interact.ipynb)\n",
    "03. [Simple Widget Introduction](03.00-Widget_Basics.ipynb)\n",
    "04. [Widget List](04.00-widget-list.ipynb)\n",
    "    02. [Output widgets: leveraging Jupyter's display system](04.02-more-on-output-widget.ipynb)\n",
    "05. [Exercises](05.00-interact and widget basics exercises.ipynb)\n",
    "06. [Layout and Styling of Jupyter widgets](06.00-Widget_Styling.ipynb)\n",
    "07. [Widget layout exercises](07.00-container-exercises.ipynb)\n",
    "08. [Widget Events](08.00-Widget_Events.ipynb)\n",
    "09. [Three approaches to events](09.00-Widget Events 2.ipynb)\n",
    "    01. [Password generator: `observe`](09.01-Widget Events 2 -- bad password generator, version 1.ipynb)\n",
    "    02. [Separating the logic from the widgets](09.02-Widget Events 2 -- Separating Concerns.ipynb)\n",
    "    03. [Separating the logic using classes](09.03-Widget Events 2--Separating concerns, object oriented.ipynb)\n",
    "10. [More widget libraries](10.00-More widget libraries.ipynb)\n",
    "    01. [bqplot: complex interactive visualizations](10.01-bqplot.ipynb)\n",
    "    02. [pythreejs: 3D rendering in the browser](10.02-pythreejs.ipynb)\n",
    "    03. [ipyvolume: 3D plotting in the notebook](10.03-ipyvolume.ipynb)\n",
    "    04. [ipyleaflet: Maps in the notebook](10.04-ipyleaflet.ipynb)\n",
    "    05. [Astronomical widget libraries](10.05-astro-libraries.ipynb)\n",
    "    06. [Exercise: Using one plot as a control for another](10.06-bqplot--A plot as a control in a widget.ipynb)\n",
    "    07. [Widget library exercise: Link some widgets up](10.07-widget-library-exercises.ipynb)\n",
    "    08. [Demo: Reactive plot with multiple regressions](10.08-bqplot--A--Penalized regression.ipynb)\n",
    "    09. [Input Widgets and Geospatial Data Analysis](10.09-flight-sim.ipynb)\n",
    "    10. [Vaex - Out of core dataframes](10.10-vaex.ipynb)\n",
    "    11. [ipywebrtc](10.11-ipywebrtc.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## [Table of widget and style properties](Table of widget keys and style keys.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Acknowledgements\n",
    "\n",
    "+ Special thanks to the dozens of [ipywidgets developers](https://github.com/jupyter-widgets/ipywidgets/graphs/contributors), including Jonathan Frederic who wrote much of the code in the early years of ipywidgets.\n",
    "+ Several of the notebooks in this tutorial were originally developed as part of [ipywidgets](http://ipywidgets.readthedocs.io/en/latest/) by Brian E. Granger ([@ellisonbg](https://github.com/ellisonbg)) and Jonathan Frederic ([@jdfreder](https://github.com/jdfreder)).\n",
    "+ Thanks to Doug Redden ([@DougRzz](https://github.com/DougRzz))\n",
    "+ Project Jupyter core developer Carol Willing ([@willingc](https://github.com/willingc)) and [Minnesota State University Moorhead](http://physics.mnstate.edu) students Andrew Block ([@ACBlock](https://github.com/ACBlock)) and Jane Glanzer ([@janeglanzer](https://github.com/janeglanzer)) provided very useful feedback on early drafts of this tutorial.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "widgets-tutorial",
   "language": "python",
   "name": "widgets-tutorial"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
